package com.gkzf.ai.module.crm.service.creditReport;

import com.gkzf.ai.module.crm.controller.admin.creditReport.vo.admittancecondition.QuotaFormulaValue;
import com.gkzf.ai.module.crm.dal.dataobject.creditReport.UserCreditReportAdmittanceConditionDO;

import java.math.BigDecimal;
import java.util.List;

public interface CreditLimitService {

    /**
     * 月收入
     * @param creditReportAdmittanceCondition 用户补充信息
     * @return 月收入
     */
    BigDecimal getMonthlyIncome(UserCreditReportAdmittanceConditionDO creditReportAdmittanceCondition);


    /**
     * 获取公积金缴存金额
     * @param creditReportAdmittanceCondition 用户二次解析信息
     * @return 获取信用贷款总额
     */
    BigDecimal getProvidentFundMoney(UserCreditReportAdmittanceConditionDO creditReportAdmittanceCondition);

    /**
     * 获取用户单位
     * @param creditReportAdmittanceCondition 用户补充信息
     * @return 单位
     */
    Integer getUnit(UserCreditReportAdmittanceConditionDO creditReportAdmittanceCondition);


    /**
     * 获取按揭月供
     * @param creditReportAdmittanceCondition 用户补充信息
     * @return 按揭月供
     */
    BigDecimal getMortgageMonthlyPayment(UserCreditReportAdmittanceConditionDO creditReportAdmittanceCondition);

    /**
     * 房产价值
     * @param creditReportAdmittanceCondition 用户补充信息
     * @return 房产价值
     */
    BigDecimal getPropertyValue(UserCreditReportAdmittanceConditionDO creditReportAdmittanceCondition);

    /**
     * 月收入前置条件
     * @return 月收入前置条件
     */
    List<QuotaFormulaValue> monthlyIncomePrecondition(List<QuotaFormulaValue> quotaFormulaValue, UserCreditReportAdmittanceConditionDO creditReportAdmittanceCondition);

    /**
     * 房产前置条件
     * @return 月收入前置条件
     */
    List<QuotaFormulaValue> propertyValuePrecondition(List<QuotaFormulaValue> quotaFormulaValue, UserCreditReportAdmittanceConditionDO creditReportAdmittanceCondition);

    /**
     * 单位前置条件
     * @return 月收入前置条件
     */
    List<QuotaFormulaValue> unitPrecondition(List<QuotaFormulaValue> quotaFormulaValue, UserCreditReportAdmittanceConditionDO creditReportAdmittanceCondition);


    /**
     * 按揭月供
     * @return 月收入前置条件
     */
    List<QuotaFormulaValue> mortgageMonthlyPayment(List<QuotaFormulaValue> quotaFormulaValue,UserCreditReportAdmittanceConditionDO creditReportAdmittanceCondition);

    /**
     * 公积金双边缴纳金额
     * @return 金融前置条件
     */
    List<QuotaFormulaValue> providentFundMoney(List<QuotaFormulaValue> quotaFormulaValue,UserCreditReportAdmittanceConditionDO creditReportAdmittanceCondition);
}
